package com.lenovo.redission.redission.config.lock;

import java.lang.annotation.*;

/**
 * @author zhaokuner
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface DistributedLock {

    /**
     * 锁的资源前缀,可以写入方法名称
     */
    String prefix() default "";

    /**
     * 锁的资源，redis的key，使用"#"开头，可以取参数值
     */
    String value() default "default";

    /**
     * 锁的有效时间  单位ms (默认执行完)
     * 若 != -1 就没有看门狗，会出现代码没有执行完，锁结束了
     */
    int expireTime() default -1;

    /**
     * 请求锁的超时时间 ms （默认1秒）
     */
    int waitTime() default 1000;

}
